package zhh.tangbao.auxiliary.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import zhh.tangbao.auxiliary.dto.message.SystemMessageQueryDto;
import zhh.tangbao.auxiliary.entity.SystemMessage;
import zhh.tangbao.auxiliary.vo.message.MessageCountStatisticsVo;

import java.util.List;

/**
 * <p>
 *     描述
 * </p>
 * @author 粥灰灰
 * <p>2023/3/28</p>
 */
public interface SystemMessageService {
    /**
     * @param recordUserId 发送人ID，若为系统发送则传入null
     * @param receiveUserIds 接收人ID列表
     * @param tittle 消息标题
     * @param content 消息内容
     */
    int batchInsert(String recordUserId, List<String> receiveUserIds, String tittle, String content);

    /**
     *
     * @param recordUserId 发送人ID，若为系统发送则传入null
     * @param receiveUserId 接收人ID
     * @param tittle 消息标题
     * @param content 消息内容
     */
    int insert(String recordUserId, String receiveUserId, String tittle, String content);

    /**
     * 给所有用户发消息
     * @param recordUserId 当消息发送者是系统的时候，recordUserId为null
     * @return
     */
    int insertAll(String recordUserId, String tittle, String content);

    MessageCountStatisticsVo getUserMessageCount(String userId);

    Page<SystemMessage> page(SystemMessageQueryDto dto);

    int batchDelete(List<String> ids);

    int readMessage(String messageId);

    int markItAsRead(List<String> messageIds);

    int markAllAsRead();

    SystemMessage getInfo(String id);
}
